<template>
	<view class="tm-verificationImg flex-center flex-col">
		<view class="flex-shrink rounded overflow relative" 
		:style="{
			width:`${size}rpx`,
			height:`${size}rpx`,
			
		}"
		>	
			<view v-if="success" class="tm-verificationImg-success fulled fulled-height rounded absolute flex-center opacity-8" >
					<tm-icons name="icon-check" color="white" :size="100"></tm-icons>
				</view>
			<view :style="{transform: `rotate(${default_value_num}deg)`}">
				<tm-images model="aspectFit" :width="size" :height="size" round="rounded" :src="src"></tm-images>
			</view>
		</view>
		<view :style="{width:`${size}rpx`}" class="py-32">
			<tm-slider :disabled="disabled" :fllowTheme="fllowTheme" :color="color_tmeme" v-model="default_value_num" :max="360"></tm-slider>
		</view>
	</view>
</template>

<script>
	//https://jx2d.cn/yuwuimages/test.png
	//测试图片角度为正120
	/**
	 * 图片安全验证
	 * @property {String} model = [normal|rotate] 默认：normal，rotate表示图片本身有角度的模式。normal是随机一张正常的图片（图片本身是没有角度的）
	 * @property {Number} rotate = [] 默认：0，当前model=normal时，应承打乱图片 的角度。当model=rotate，是特指图片本身的角度。
	 * @property {Number} size = [] 默认：200，大小。
	 * @property {String} color = [] 默认：primary，主题色。
	 * @property {String} src = [] 默认：''随机一张图片，图片地址。
	 * @property {Boolean} disabled = [] 默认：false,是否禁用
	 * @property {Function} change 旋转的时候触发，返回参数为当前的检验，正确是为true,失败为false
	 */
	import tmIcons from "@/tm-vuetify/components/tm-icons/tm-icons.vue"
	import tmImages from "@/tm-vuetify/components/tm-images/tm-images.vue"
	import tmSlider from "@/tm-vuetify/components/tm-slider/tm-slider.vue"
	export default {
		components:{tmSlider,tmIcons,tmImages},
		name:"tm-verificationImg",
		props:{
			//rotate表示图片本身有角度的模式。normal是随机一张正常的图片（图片本身是没有角度的）
			model:{
				type:String,
				default:'normal' ,//normal|rotate ，
			},
			//当前model=normal时，应承打乱图片 的角度。当model=rotate，是特指图片本身的角度。
			rotate:{
				type:Number,
				default:0
			},
			size:{
				type:Number|String,
				default:200
			},
			color:{
				type:String,
				default:'primary'
			},
			src:{
				type:String,
				default:'https://picsum.photos/300'
			},
			// 跟随主题色的改变而改变。
			fllowTheme:{
				type:Boolean|String,
				default:true
			},
			disabled:Boolean
		},
		data() {
			return {
				default_value_num:0,
				imgrotate:0,
				wucha:5,
				success:false
			};
		},
		computed:{
			color_tmeme:function(){
				if(this.$tm.vx.state().tmVuetify.color!==null&&this.$tm.vx.state().tmVuetify.color && this.fllowTheme){
					return this.$tm.vx.state().tmVuetify.color;
				}
				return this.color;
			},
		},
		mounted() {
			if(this.model=='normal'){
				this.default_value_num = this.rotate
				this.imgrotate = 0
			}else{
				this.default_value_num = 0
				this.imgrotate = this.rotate
			}
		},
		watch:{
			default_value_num:function(val){
				let zque = Math.abs(360-this.imgrotate);
				if(this.model=='normal'){
					if(val>=360){
						this.success=true
						
					}else{
						this.success=false
					}
				}else{
					if(val>=zque-5 && val <=zque+5){
						this.success=true
					}else{
						this.success=false
					}
				}
				this.$emit('change',this.success)
			}
		},
		methods: {
			name() {
				
			}
		},
	}
</script>

<style lang="scss">
.tm-verificationImg{
	.tm-verificationImg-success{
		top: 0;
		left: 0;
		z-index: 9;
		background-color: rgba(0,0,0,0.2);
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
		
	}
}
</style>
